using System.Collections.Generic;
using TestCases.CompareAssert.Core.Interfaces;

namespace TestCases.CompareAssert.Core.Compositions.Interfaces
{
    public interface ICompositionComparer<TItem, TItemResult> where TItemResult: IResultProvider
    {
        TItemResult CompareBy(TItem item, ICompareContext context);
        IResultBuilder ComposeItemResults(CompareStatus status, ICompareContext context, IList<TItemResult> children);
    }
}